package com.cloud.mall.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.util.Date;

/**
 * 商品表
 */
@Data
@TableName(value = "t_products")
public class Products {
    /**
     * id
     */
    @TableId(value = "id")
    private Long id;

    /**
     * 商品名称
     */
    @NotNull
    @Size(min = 0, max = 32 , message ="长度必须在{min}和{max}之间")
    @TableField(value = "product_name")
    private String productName;

    /**
     * 归属店铺
     */
    @TableField(value = "store_id")
    private Long storeId;

    /**
     * 商品类别
     */
    @TableField(value = "category_id")
    private Integer categoryId;

    /**
     * 价格
     */
    @TableField(value = "price")
    private Integer price;

    /**
     * 首图
     */
    @Size(min = 0, max = 200 , message ="长度必须在{min}和{max}之间")
    @TableField(value = "head_img")
    private String headImg;

    /**
     * 0仓库中 1正常(上架销售中)，2下架，3删除,4审核中，5审核不通过
     */
    @TableField(value = "status")
    private Byte status;

    /**
     * 商品类型 0：商品 1：积分商品 2：优惠券商品
     */
    @TableField(value = "item_type")
    private Byte itemType;

    /**
     * 商品销量
     */
    @TableField(value = "sold")
    private Integer sold;

    /**
     * 0-未售罄,1-售罄
     */
    @TableField(value = "sold_out")
    private Byte soldOut;

    /**
     * 下架时间
     */
    @TableField(value = "off_shelf_time")
    private Date offShelfTime;

    /**
     * 0:不推荐;1:推荐
     */
    @TableField(value = "flag")
    private Byte flag;

    /**
     * 创建人
     */
    @TableField(value = "created_by")
    private Long createdBy;

    /**
     * 创建时间
     */
    @TableField(value = "created_time")
    private Date createdTime;

    /**
     * 修改人
     */
    @TableField(value = "modified_by")
    private Long modifiedBy;

    /**
     * 修改时间
     */
    @TableField(value = "gmt_modified")
    private Date gmtModified;

    /**
     * 商品简述
     */
    @Size(min = 0, max = 65535 , message ="长度必须在{min}和{max}之间")
    @TableField(value = "brief")
    private String brief;

}